package com.qymerge.manage.base.ro;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * <p>Title: MetaBudgetGLRO</p>
 * <p>Description: 预算明细表（总账类）</p>
 *
 * @author Xiao
 * @version 1.0.0
 * @date 2025/5/12 18:27
 */
@Data
public class MetaBudgetGLRO implements Serializable {

    private Long Id;                         //

    private Long BudgetId;                   // 预算主表ID

    private String InternalCompanyId;        // 关联公司Id
    /* 查询使用 */
    private String InternalCompanyCode;      // 关联公司Id
    private String InternalCompanyName;      // 关联公司Id

    private Integer PeriodYear;              // 会计期间-年
    private Integer PeriodMonth;             // 会计期间-月

    private String AccountViewCode;          // 科目代码（法人公司）
    private String AccountViewName;          // 科目名称（法人公司）

    private String GroupAccountViewCode;     // 科目代码（集团）

    /* 查询使用 */
    private String GroupAccountViewName;     // 科目代码（集团）

    private BigDecimal Amount;               //

    public MetaBudgetGLRO() {
    }

    public MetaBudgetGLRO(Long budgetId, String internalCompanyId, String accountViewCode, String accountViewName, String groupAccountViewCode, BigDecimal amount, Integer periodYear, Integer periodMonth) {
        this.BudgetId = budgetId;
        this.InternalCompanyId = internalCompanyId;
        this.AccountViewCode = accountViewCode;
        this.AccountViewName = accountViewName;
        this.GroupAccountViewCode = groupAccountViewCode;
        this.Amount = amount;
        this.PeriodYear = periodYear;
        this.PeriodMonth = periodMonth;
    }

    public MetaBudgetGLRO(Long id, Long budgetId, String internalCompanyId, String internalCompanyCode, String internalCompanyName, Integer periodYear, Integer periodMonth, String accountViewCode, String accountViewName, String groupAccountViewCode, String groupAccountViewName, BigDecimal amount) {
        Id = id;
        BudgetId = budgetId;
        InternalCompanyId = internalCompanyId;
        InternalCompanyCode = internalCompanyCode;
        InternalCompanyName = internalCompanyName;
        PeriodYear = periodYear;
        PeriodMonth = periodMonth;
        AccountViewCode = accountViewCode;
        AccountViewName = accountViewName;
        GroupAccountViewCode = groupAccountViewCode;
        GroupAccountViewName = groupAccountViewName;
        Amount = amount;
    }
}
